package com.yunji.news.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yunji.news.entity.Major;

import java.util.List;

/**
 * 专业信息服务接口
 *
 * @author yunji
 * @since 2024-11-25
 */
public interface MajorService extends IService<Major> {

    /**
     * 分页查询专业列表
     *
     * @param page 分页参数
     * @param schoolId 院校ID
     * @param name 专业名称
     * @param category 专业分类
     * @return 分页结果
     */
    Page<Major> getMajorPage(Page<Major> page, Long schoolId, String name, String category);

    /**
     * 根据院校ID查询专业列表
     *
     * @param schoolId 院校ID
     * @return 专业列表
     */
    List<Major> getMajorsBySchoolId(Long schoolId);

    /**
     * 获取专业分类列表
     *
     * @return 专业分类列表
     */
    List<String> getCategories();

    /**
     * 创建专业
     *
     * @param major 专业信息
     * @return 是否成功
     */
    boolean createMajor(Major major);

    /**
     * 更新专业
     *
     * @param major 专业信息
     * @return 是否成功
     */
    boolean updateMajor(Major major);

    /**
     * 删除专业
     *
     * @param id 专业ID
     * @return 是否成功
     */
    boolean deleteMajor(Long id);

    /**
     * 批量删除专业
     *
     * @param ids 专业ID列表
     * @return 是否成功
     */
    boolean deleteMajorBatch(List<Long> ids);
}